/*
 *  MW.h
 *  T3nsors
 *
 *  Created by Michael Barriault on 09-10-27.
 *  Copyright 2010 University of Guelph. All rights reserved.
 *
 */

#include "T3nsors.h"

class MW {
public:
	std::string id;
	bool stopit;
	Domain O;
	Comm *Badge;
	Scalar Phi,Psi;
	Vector B,E;
	Vector x;
	double K,epsilon,J,c,w;
	int damp,all;
	MW();
	MW(Domain,double,double,double,Comm*);
	~MW(void);
	Scalar Phidot(Scalar,Scalar,Vector,Vector);
	Scalar Psidot(Scalar,Scalar,Vector,Vector);
	Vector Edot(Scalar,Scalar,Vector,Vector);
	Vector Bdot(Scalar,Scalar,Vector,Vector);
	void Boundaries(Scalar*, Scalar*, Vector*, Vector*);
	void RK2(double);
	void RK3(double);
	void Solve(double,double,int);
	void Print(double,Scalar);
	void Print(double,Vector);
};

